package com.bjsxt.chapter1_singleton;

/**
 * @ClassName SingletonDemo4
 * @Description 静态内部类式单例模式
 * 变相的懒汉式
 * 外部类没有static属性，则不会像饿汉式那样立即加载对象
 * 只有真正调用getInstance()，才会加载静态内部类。
 * 加载类时是线程安全的。instance是static final类型，保证了内存中只有一个实例存在，
 * 而且只能被赋值一次，从而保证了线程安全性。
 * 兼备了并发高效调用和延迟加载的优势！
 * @Author 黑马程序员
 * @Date 18:07 2024/6/18
 * @Version 1.0
 **/
public class SingletonDemo4 {
    // 静态内部类
   private static class  SingletonClassInstance {
       private static final SingletonDemo4 instance = new SingletonDemo4();
   }

    // 私有构造器
    private SingletonDemo4(){

    }

    public static SingletonDemo4 getInstance(){
        return SingletonClassInstance.instance;
    }
}
